home *** CD-ROM | disk | FTP | other *** search
-
- function DoesDriveExist(DriveLetter: char): string;
- var i: integer;
- begin
- if DriveLetter in ['A'..'Z'] then {Make it lower case.}
- DriveLetter := chr(ord(DriveLetter) or $20);
- i := GetDriveType(ord(DriveLetter) - ord('a'));
- case i of
- DRIVE_REMOVABLE: result := 'floppy';
- DRIVE_FIXED: result := 'hard disk';
- DRIVE_REMOTE: result := 'network drive';
- else result := 'does not exist';
- end;
- end;
-
- function DoesDriveExist(DriveLetter: char): boolean;
-
- var
- drives: TDriveComboBox;
- i: integer;
- begin
- result := false;
- drives := TDriveComboBox.create(application);
- drives.parent := form1;
- form1.listbox1.items := drives.items;
- for i := drives.items.count - 1 downto 0 do {Note: this is case sensitive: lower case.}
- if drives.items.strings[i][1] = DriveLetter then result := true;
- drives.free; {...so that the combobox doesn't show.}
- end;
-
- Also, DiskFree() will return -1 if the drive does not exist.
-
- Neil Rubenking wrote this code --
-
- function DirExists(const S : String): Boolean;
- VAR
- OldMode : Word;
- OldDir : String;
-
- BEGIN
- Result := True;
- GetDir(0, OldDir); {save old dir for return}
- OldMode := SetErrorMode(SEM_FAILCRITICALERRORS); {if drive empty, except}
- try try
- ChDir(S);
- except
- ON EInOutError DO Result := False;
- end;
- finally
- ChDir(OldDir); {return to old dir}
- SetErrorMode(OldMode); {restore old error mode}
- end;
- END;